<?php

include_once (APPLICATION_PATH."/library/Excel/PEAR.php");
include_once (APPLICATION_PATH."/library/Excel/Writer.php");



/**
 * Sgit_Pdf
 * 
 * @package   
 * @author sgit_development
 * @copyright juanma
 * @version 2012
 * @access public
 */
class Sgit_Excel extends Spreadsheet_Excel_Writer
{

    protected $_header=array();
    protected $_keys=array();
    protected $_width=array();
   


    function setColumnas($columnas)
    {        
        $translate= Zend_Registry::get('Zend_Translate');
        
        foreach($columnas as $k => $col){
            $this->_header[$k]=$translate->translate($col['header']);
            $this->_keys[$k]=$col['key'];
            $this->_width[$k]=($col['width']) ? $col['width'] : 20;
        }

    }
    

    public function render($rows,$file=''){


		$size=7.5;

		// Creamos un libro de excel que sirve como nuestro espacio de trabajo.
	

		// Estableceremos nuestro formato Negrita para usarlo en el documento
		$header =& $this->addFormat();
		$header->setBold();
		$header->setHAlign('center');
		$header->setBgColor('50');
		$header->setSize($size);
        $header->setAlign('top');
        $header->setAlign('center');
        $header->setTextWrap(1);
        $header->setBorder(1);
 
        
        
		
		$a =& $this->addFormat();
		$a->setHAlign('left');
		$a->setSize($size);
		$a->setTextWrap();
        $a->setBorder(1);
        $a->setAlign('top');
		
		$b =& $this->addFormat();
		$b->setHAlign('left');
		$b->setSize($size);
		$b->setBgColor(41);//31
		$b->setTextWrap();
        $b->setBorder(1);
        $b->setAlign('top');
	
		
		// Necesitamos una hoja en la cual poner nuestros datos
		$hoja =& $this->addWorksheet('Hoja1');
		

		$hoja->freezePanes(array(1, 0));
		
		$hoja->setHeader($file);
		
		$i=0;
		foreach($this->_width as $v){
			$hoja->setColumn($i,$i, $v);
			$i++;
		}
		
		
		// Verificamos que la hoja se haya generado correctamente
		if (PEAR::isError($hoja)) {
		    die($hoja->getMessage());
		}
		

		
		$i=0;
		foreach ($this->_header as $v) {
            $v=str_replace(chr(128),' Euros',$v);
		    $hoja->write(0, $i++, utf8_decode($v), $header);
		}
		
		$j=1;
		foreach ($rows as $r) {
			$c=($c=='a') ? 'b' : 'a';
			$i=0;
			foreach($this->_keys as $v){
				$value2=str_replace(array('.',','),array('','.'),$r[$v]);
				if(is_numeric($value2)){
					$hoja->writeNumber($j, $i++, $value2, $$c);
				}else{
					$hoja->writeString($j, $i++, utf8_decode($r[$v]), $$c);
				}
				
			}
			$j++;
		}
	
		
		if(empty($file))$file='sgit';
		
		
		// Generamos nuestro libro de excel
		$this->send($file.'.xls');
		$this->close();
			
		return true;
	}
 }